package com.ag.work2.service;

import com.ag.bean.TbEvent;
import com.ag.bean.TbPropose;
import com.ag.bean.TbProposeRecord;
import com.ag.bean.TbUser;

public interface IReportService {
	/**
	 * 获取当前事件的状态和预案启动信息
	 * 
	 * @param EId
	 * @return
	 */
	public String selectExt4Command(String eventID);

	/**
	 * 审计呈批
	 * 
	 * @param EId
	 * @return
	 */
	public void auditPropose(TbProposeRecord proposeRecord, TbUser user,
			String EId);

	/**
	 * 取消呈批
	 * 
	 * @param EId
	 * @return
	 */
	public void cancelPropose(TbProposeRecord proposeRecord, String EId);

	/**
	 * 保存事件呈批信息
	 * 
	 * @param EId
	 * @return
	 */
	public void saveAdmin(TbPropose propose, String EId, TbUser user);

	/**
	 * 根据事件ID是否已经初始化过配置
	 * 
	 * @param EId
	 * @return
	 */
	public String checkPropose(String EId);

	/**
	 * 根据事件ID查询事件的呈批信息
	 * 
	 * @param EId
	 * @return
	 */
	public TbPropose findEventPropose(String EId);

	/**
	 * 根据事件ID查询事件的呈批信息
	 * 
	 * @param EId
	 * @return
	 */
	public User2Dept findFirstReportPropose(String EId);

	/**
	 * 根据事件ID查询事件状态
	 * 
	 * @param EId
	 * @return
	 */
	public String findEventStatusByID(String EId);

	/**
	 * 根据事件ID是否已经初始化过配置
	 * 
	 * @param EId
	 * @return
	 */
	public String checkEventAdmin(String EId);
	/**
	 * 直接处理
	 * 
	 * @param EId
	 * @return
	 */
	public void directly(TbPropose propose, TbProposeRecord proposeRecord,
			TbUser user);

	/**
	 * 保存事件呈批信息
	 * 
	 * @param EId
	 * @return
	 */
	public void savePropose(TbPropose propose, TbProposeRecord proposeRecord,
			TbUser user);

	/**
	 * 保存事件呈批信息
	 * 
	 * @param EId
	 * @return
	 */
	public void saveProposeRecord(TbPropose propose,
			TbProposeRecord proposeRecord, TbUser user);

	/**
	 * 查询事件详情
	 * 
	 * @param EId
	 * @return
	 */
	public TbEvent findEventByID(String EId);

	/**
	 * 启动预案
	 * 
	 * @param EId
	 * @return
	 */
	public void startPlan(String EId, String PId, TbUser user);

	/**
	 * 事件评级
	 * 
	 * @param EId
	 * @return
	 */
	public void ratingEvent(String EId, String elId);

	/**
	 * 同意下级
	 * 
	 * @param EId
	 * @return
	 */
	public void agreeLower(TbPropose propose, TbProposeRecord proposeRecord,
			TbUser user);
	
	
	public void saveAdminSoFar(TbPropose propose, String EId, TbUser user);

}
